﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Domain
{
    /// <summary>
    /// 企业信息类
    /// </summary>
    public class EnterpriseInfo : AuditableEntity
    {
        private static int _currentIdNumber = 1;

        /// <summary>
        /// 企业编号（格式D001，自增）
        /// </summary>
        [Key]
        public string EnterpriseId { get; private set; }

        /// <summary>
        /// 企业名称（不为空）
        /// </summary>
        public string? CompanyName { get; set; }

        /// <summary>
        /// 企业类型 列如深加工企业 屠宰企业 养殖企业
        /// </summary>
        public string? CompanyType { get; set; }

        /// <summary>
        /// 负责人（不为空）
        /// </summary>
        public string? PersonInCharge { get; set; }

        /// <summary>
        /// 存栏数量（不为空）
        /// </summary>
        public string? LivestockInventory { get; set; }
  

        /// <summary>
        /// 生产许可证编号（SC编号） 深加工企业字段
        /// </summary>


        public string? ProductionLicense { get; set; }

        

        /// <summary>
        /// 详细地址（不含省市县）  屠宰企业信息字段
        /// </summary>
        public string? Address { get; set; }

        /// <summary>
        /// 所在省份
        /// </summary>
        public string? Province { get; set; }

        /// <summary>
        /// 所在城市
        /// </summary>
        public string? City { get; set; }

        /// <summary>
        /// 所在区县
        /// </summary>
        public string? County { get; set; }

        /// <summary>
        /// 成立时间（格式：yyyy-MM-dd）
        /// </summary>
        public string? EstablishmentDate { get; set; }

        /// <summary>
        /// 公司简介（200字以内）
        /// </summary>
        public string? Description { get; set; }


        /// <summary>
        /// 批次（关联溯源基本信息表的生产批次）
        /// </summary>
        public string? ProductionBatch { get; set; }

        /// <summary>
        /// 构造函数，自动生成企业编号
        /// </summary>
        public EnterpriseInfo()
        {
            // 生成格式为D001的编号
            EnterpriseId = $"D{_currentIdNumber.ToString().PadLeft(3, '0')}";
            _currentIdNumber++;
        }
    }
}
